import multiprocessing, time


def process_task(item):  # 进程业务任务
	time.sleep(1)
	return f"{multiprocessing.current_process().name}进程，业务处理步骤：{item}"


def process_task_callback(result):  # 进程处理的回调操作
	print(f"【业务回调】:{result}")


def process_task_error(err):  # 错误处理
	print(f"【业务错误】：{err}")


def main():
	process_pool = multiprocessing.Pool(
		processes=multiprocessing.cpu_count() * 2  # 创建进程池
	)  # 创建进程池
	# 创建进程，开启业务处理
	for item in range(100):  # 循环创建进程池
		result = process_pool.apply_async(
			func=process_task,  # 业务函数
			args=(item,),
			callback=process_task_callback,  # 业务回调
			error_callback=process_task_error,  # 错误回调
		)
		result.get()  # 进程执行完成，出发callback
	process_pool.close()

if __name__ == '__main__':
	main()
